﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Capa_Entidad;
using Negocio.Clases_BL;
using Capa_Negocio_Interface;

namespace Capa_Negocio_Facade
{
    public class FacadeRegistrarProgramacion : IFacadeRegistrarProgramacion
    {

        clsPrm_Programacion_MedicaBL _clsPrm_Programacion_MedicaBL = new clsPrm_Programacion_MedicaBL();
        clsPrm_Tipo_ProgramacionBL _clsPrm_Tipo_ProgramacionBL = new clsPrm_Tipo_ProgramacionBL();
        clsDepartamentoHospitalBL _clsDepartamentoHospitalBL = new clsDepartamentoHospitalBL();
        clsPrm_TurnoBL _clsPrm_TurnoBL = new clsPrm_TurnoBL();
        clsMedicoBL _clsMedicoBL = new clsMedicoBL();
        clsTipoServicioBL _clsTipoServicioBL = new clsTipoServicioBL();
        clsEspecialidadBL _clsEspecialidadBL = new clsEspecialidadBL();
        clsConsultorioBL _clsConsultorioBL = new clsConsultorioBL();
        clsAdmCitaBL _clsAdmCitaBL = new clsAdmCitaBL();


        public List<V_Detalle_Programacion_Medica> listarProgramacionMedicaDetalle()
        {
            try
            {
                return _clsPrm_Programacion_MedicaBL.listar_Detalle();
            }
            catch (Exception)
            {
                return null;
            }
        }

        public List<PRM_TIPO_PROGRAMACION> listarTipoProgramacion()
        {
            try
            {
                return _clsPrm_Tipo_ProgramacionBL.listar();
            }
            catch (Exception)
            {
                return null;
            }
        }

        public List<GEN_DEPARTAMENTO_HOSPITAL> listarDepartamentoHospital()
        {
            try
            {
                return _clsDepartamentoHospitalBL.listar();
            }
            catch (Exception)
            {
                return null;
            }
        }

        public List<PRM_TURNO> listarTurno()
        {
            try
            {
                return _clsPrm_TurnoBL.listar();
            }
            catch (Exception)
            {
                return null;
            }
        }

        public List<V_Medico_Especialidad> listarMedicoXFiltro(Int32 idEspecialidad)
        {
            try
            {
                return _clsMedicoBL.listar_Medico_Filtro(idEspecialidad);
            }
            catch (Exception)
            {
                return null;
            }
        }

        public List<GEN_TIPO_SERVICIO> listarTipoServicio()
        {
            try
            {
                return _clsTipoServicioBL.listar();
            }
            catch (Exception)
            {
                return null;
            }
        }

        public IEnumerable<Object> listarEspecialidadXFiltro(int ID)
        {
            try
            {
                return _clsEspecialidadBL.listarFiltro(ID);
            }
            catch (Exception)
            {
                return null;
            }
        }

        public IEnumerable<Object> listarConsultorioXFiltro(int ID)
        {
            try
            {
                return _clsConsultorioBL.listarFiltro(ID);
            }
            catch (Exception)
            {
                return null;
            }
        }

        public List<ADM_CITA> listarCita()
        {
            try
            {
                return _clsAdmCitaBL.listar();
            }
            catch (Exception)
            {
                return null;
            }
        }

        public int UltimoNumeroProgramacionMedica()
        {
            try
            {
                return Convert.ToInt32(_clsPrm_Programacion_MedicaBL.UltimoNumero());
            }
            catch (Exception)
            {
                return -1;
            }
        }

        public bool InsertarProgramacionMedica(PRM_PROGRAMACION_MEDICA obj)
        {
            try
            {
                return _clsPrm_Programacion_MedicaBL.Insertar(obj);
            }
            catch (Exception)
            {
                return false;
            }
        }

        public bool ModificarProgramacionMedica(PRM_PROGRAMACION_MEDICA obj)
        {
            try
            {
                return _clsPrm_Programacion_MedicaBL.Modicar(obj);
            }
            catch (Exception)
            {
                return false;
            }
        }

        public bool EliminarProgramacionMedica(PRM_PROGRAMACION_MEDICA obj)
        {
            try
            {
                return _clsPrm_Programacion_MedicaBL.Eliminar(obj);
            }
            catch (Exception)
            {
                return false;
            }
        }


    }
}
